package com.fand.platform.authority.service;

import java.util.List;
import java.util.Map;

import com.fand.cache.support.CacheEvictSupport;
import com.fand.dto.PaginationDto;
import com.fand.platform.authority.dto.ResourceDto;
import com.fand.platform.authority.dto.ResourceVaRuTrMoDto;

/**
 * 资源服务
 * 
 * @author yaoHT
 */
public interface ResourceService extends CacheEvictSupport {
	String BEAN_ID = "com.fand.platform.authority.service.ResourceService";

	String CACHE_NAME = ResourceService.BEAN_ID + "Cache";

	/**
	 * 保存:资源
	 * 
	 * @param saveResource
	 *            资源对象
	 * 
	 * @return 资源对象
	 */
	ResourceDto saveResourceBy1ForResource(ResourceDto saveResource);

	/**
	 * 保存:资源
	 * 
	 * @param saveResource
	 *            资源对象
	 * 
	 * @return 资源对象
	 */
	ResourceDto saveResourceBy2ForResource(ResourceDto saveResource);

	/**
	 * 删除:资源
	 * 
	 * @param deleteResource
	 *            资源对象
	 * 
	 * @return 影响行数
	 */
	int deleteResourceBy1(ResourceDto deleteResource);

	/**
	 * 删除:资源
	 * 
	 * @param deleteResource
	 *            资源对象
	 * 
	 * @return 影响行数
	 */
	int deleteResourceBy2(ResourceDto deleteResource);

	/**
	 * 设置:资源
	 * 
	 * @param setResource
	 *            资源对象
	 * 
	 * @return 影响行数
	 */
	int setResourceBy1(ResourceDto setResource);

	/**
	 * 设置:资源
	 * 
	 * @param setResource
	 *            资源对象
	 * 
	 * @return 影响行数
	 */
	int setResourceBy2(ResourceDto setResource);

	/**
	 * 读取:资源
	 * 
	 * @param readResource
	 *            资源对象
	 * 
	 * @return 资源对象
	 */
	Integer readResourceBy1ForInteger(ResourceDto readResource);

	/**
	 * 读取:资源
	 * 
	 * @param readResource
	 *            资源对象
	 * 
	 * @return 资源对象
	 */
	Integer readResourceBy2ForInteger(ResourceDto readResource);

	/**
	 * 读取:资源
	 * 
	 * @param readListResource
	 *            资源对象
	 * 
	 * @return 资源对象集合
	 */
	List<Integer> readListResourceBy1(ResourceDto readResource);

	/**
	 * 读取:资源
	 * 
	 * @param readListResource
	 *            资源对象
	 * 
	 * @return 资源对象集合
	 */
	List<Integer> readListResourceBy2(ResourceDto readResource);

	/**
	 * 查询:资源
	 * 
	 * @param getResource
	 *            资源对象
	 * 
	 * @return 资源对象
	 */
	ResourceDto getResourceBy1(ResourceDto getResource);

	/**
	 * 查询:资源
	 * 
	 * @param getResource
	 *            资源对象
	 * 
	 * @return 资源对象
	 */
	ResourceDto getResourceBy2(ResourceDto getResource);

	/**
	 * 查询:资源
	 * 
	 * @param findResource
	 *            资源对象
	 * 
	 * @return 资源对象集合
	 */
	List<ResourceDto> findResourceBy1(ResourceDto findResource);

	/**
	 * 查询:资源
	 * 
	 * @param findResource
	 *            资源对象
	 * 
	 * @return 资源对象集合
	 */
	List<ResourceDto> findResourceBy2(ResourceDto findResource);

	/**
	 * 分页:资源
	 * 
	 * @param paginationResource
	 *            资源对象
	 * 
	 * @return 资源分页对象
	 */
	PaginationDto<ResourceDto> paginationResourceBy1ForResourceList(ResourceDto paginationResource);

	/**
	 * 分页
	 * 
	 * @param paginationResource
	 *            资源对象
	 * 
	 * @return 资源分页对象
	 */
	PaginationDto<Map<String, Object>> paginationResourceBy1ForMapList(ResourceDto paginationResource);

	/**
	 * 保存:资源、验证规则与处理模式
	 * 
	 * @param saveResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象
	 */
	ResourceVaRuTrMoDto saveResourceVaRuTrMoBy1ForResourceVaRuTrMo(ResourceVaRuTrMoDto saveResourceVaRuTrMo);

	/**
	 * 保存:资源、验证规则与处理模式
	 * 
	 * @param saveResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象
	 */
	ResourceVaRuTrMoDto saveResourceVaRuTrMoBy2ForResourceVaRuTrMo(ResourceVaRuTrMoDto saveResourceVaRuTrMo);

	/**
	 * 删除:资源、验证规则与处理模式
	 * 
	 * @param deleteResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 影响行数
	 */
	int deleteResourceVaRuTrMoBy1(ResourceVaRuTrMoDto deleteResourceVaRuTrMo);

	/**
	 * 删除:资源、验证规则与处理模式
	 * 
	 * @param deleteResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 影响行数
	 */
	int deleteResourceVaRuTrMoBy2(ResourceVaRuTrMoDto deleteResourceVaRuTrMo);

	/**
	 * 设置:资源、验证规则与处理模式
	 * 
	 * @param setResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 影响行数
	 */
	int setResourceVaRuTrMoBy1(ResourceVaRuTrMoDto setResourceVaRuTrMo);

	/**
	 * 设置:资源、验证规则与处理模式
	 * 
	 * @param setResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 影响行数
	 */
	int setResourceVaRuTrMoBy2(ResourceVaRuTrMoDto setResourceVaRuTrMo);

	/**
	 * 读取:资源、验证规则与处理模式
	 * 
	 * @param readResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象
	 */
	Integer readResourceVaRuTrMoBy1ForInteger(ResourceVaRuTrMoDto readResourceVaRuTrMo);

	/**
	 * 读取:资源、验证规则与处理模式
	 * 
	 * @param readResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象
	 */
	Integer readResourceVaRuTrMoBy2ForInteger(ResourceVaRuTrMoDto readResourceVaRuTrMo);

	/**
	 * 读取:资源、验证规则与处理模式
	 * 
	 * @param readListResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象集合
	 */
	List<Integer> readListResourceVaRuTrMoBy1(ResourceVaRuTrMoDto readResourceVaRuTrMo);

	/**
	 * 读取:资源、验证规则与处理模式
	 * 
	 * @param readListResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象集合
	 */
	List<Integer> readListResourceVaRuTrMoBy2(ResourceVaRuTrMoDto readResourceVaRuTrMo);

	/**
	 * 查询:资源、验证规则与处理模式
	 * 
	 * @param getResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象
	 */
	ResourceVaRuTrMoDto getResourceVaRuTrMoBy1(ResourceVaRuTrMoDto getResourceVaRuTrMo);

	/**
	 * 查询:资源、验证规则与处理模式
	 * 
	 * @param getResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象
	 */
	ResourceVaRuTrMoDto getResourceVaRuTrMoBy2(ResourceVaRuTrMoDto getResourceVaRuTrMo);

	/**
	 * 查询:资源、验证规则与处理模式
	 * 
	 * @param findResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象集合
	 */
	List<ResourceVaRuTrMoDto> findResourceVaRuTrMoBy1(ResourceVaRuTrMoDto findResourceVaRuTrMo);

	/**
	 * 查询:资源、验证规则与处理模式
	 * 
	 * @param findResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式对象集合
	 */
	List<ResourceVaRuTrMoDto> findResourceVaRuTrMoBy2(ResourceVaRuTrMoDto findResourceVaRuTrMo);

	/**
	 * 分页:资源、验证规则与处理模式
	 * 
	 * @param paginationResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式分页对象
	 */
	PaginationDto<ResourceVaRuTrMoDto> paginationResourceVaRuTrMoBy1ForResourceVaRuTrMoList(
			ResourceVaRuTrMoDto paginationResourceVaRuTrMo);

	/**
	 * 分页
	 * 
	 * @param paginationResourceVaRuTrMo
	 *            资源、验证规则与处理模式对象
	 * 
	 * @return 资源、验证规则与处理模式分页对象
	 */
	PaginationDto<Map<String, Object>> paginationResourceVaRuTrMoBy1ForMapList(
			ResourceVaRuTrMoDto paginationResourceVaRuTrMo);
}